github.com/0chain/gosdk@v1.17.11/docs/uml/upload file.puml (about) 1 @startuml 2 participant "<size:20><&terminal></size> ./zbox upload" as cli 3 collections gosdk 4 collections blobber 5 6 cli -> gosdk: uploadOrUpdateFile() 7 8 gosdk -> gosdk: check initialized allocation 9 gosdk -> gosdk: get file info 10 gosdk -> gosdk: check valid path 11 gosdk -> gosdk: get full remote path 12 gosdk -> gosdk: create upload request 13 14 alt need repair 15 gosdk -> gosdk: create list request 16 gosdk -> blobber: get file consensus from blobber 17 end 18 19 gosdk -> gosdk: check fullconsensus of upload request has supported 20 gosdk -> gosdk: process upload 21 gosdk -> gosdk: get file info from file path 22 gosdk -> gosdk: setup upload file 23 24 alt length of thumbnailpath > 0 25 group for count from 0 to chunksPerShard 26 gosdk -> gosdk: push thumbnail data 27 end 28 gosdk -> gosdk: complete thumbnail push 29 30 group for count from 0 to chunksPerShard 31 alt is upload canceled 32 alt not update and not repair 33 gosdk -> blobber: delete file 34 end 35 gosdk --> cli: return 36 end 37 gosdk -> gosdk: push data 38 end 39 gosdk -> gosdk: complete push 40 41 42 group for each bit 1 in the uploadMask 43 gosdk -> gosdk: create commit request 44 gosdk -> blobber: add commit request 45 end 46 47 alt retries < 3 && check threshold consensus is true 48 group for each successful commit 49 gosdk -> gosdk: increase consensus 50 end 51 gosdk -> gosdk: check threshold consensus 52 gosdk -> gosdk: increase retries 53 end 54 55 alt check threshold consensus is true && consensus != 0 56 gosdk -> blobber: delete file 57 end 58 59 gosdk --> cli: upload completed and return 60 end 61 @enduml